Modélisation avancée pour Fallout 3 avec Blender

 
 
Le but de ce chapitre n'est pas de décrire dans le détail tout le travail de modélisation avec Blender pour fallout 3, mais de donner des truc et des astuces ainsi que des informations spécifiques à Fallout 3 pour créer divers modèles qui fonctionneront correctement dans le jeu.
 
 
Une première astuce pour faciliter le travail en général, c'est de toujours essayer de partir d'un élément existant dans le jeu et de le modifier après l'avoir importé.
 
Ceci vous évitera bien des déboires surtout si vous débutez avec le modelage pour Fallout 3 et Blender.
 
En important un modèle vous allez disposer d'un modèle viable dans Blender, ce qui vous permettra de voir comment le modèle a été construit, de voir commet il a été lié au squelette, de voir le mappage des textures, la façon dont celles-ci sont chargées dans Blender et appliquées au modèle etc...
C'est le moment d'étudier chaque partie du modelage et de voir quelles options ont été choisies pour chaque partie du travail.
 
C'est une étape indispensable pour apprendre à créer un modèle avec un maximum de chances de réussite. La plus grosse bêtise serait de commencer par créer un modèle dans Blender, puis d'essayer de le faire entrer dans le moule à coups de massue pour satisfaire aux exigences d'un modèle au format nif pour Fallout 3.
 
Par exemple si vous voulez créer une armure, importez d'abord un personnage standard comme référence pour l'habiller ensuite avec votre armure.
 
 
Pour un bon départ :
 
1 : commencez par importer un modèle qui est le plus proche de ce que vous voulez réaliser.
 

2 : supprimez le squelette importé avec le modèle puis importez le squelette préparé exprès pour le modelage, on le trouve sur le site Nexus : http://www.fallout3nexus.com/downloads/file.php?id=916 .

le squelette importé avec le modèle donnera un modèle complètement tordu lorsque vous l'exporterez et copierez avec NifSkope. Le squelette qu'on trouve dans les données du jeu ne convient pas non plus.

 
3 : Liez le modèle avec le nouveau squelette. Pour ce faire on sélectionne le modèle en Object Mode , puis on fait SHIFT-clic droit sur le squelette pour les sélectionner les deux. Ensuite on fait CTRL-P pour rendre le squelette parent du modèle. Une boite de dialogue apparait et on choisit l'option Use Armature, puis Name Groups dans la suivante.
 
4 : Etudiez à fond le modèle importé avant de commencer à le modifier ou à créer un autre élément. Vous aurez toutes les informations sur le mappage de texture, la manière de les appliquer au modèle, la lisaison du modèle au squelette et bien d'autre informations utiles.
 
 
 
Modélisation du modèle :
 
Je ne vais pas détailler les outils de Blender, mais simplement donner quelques astuces pour simplifier le travail.
 
N'oubliez pas d'utiliser un modificateur très utile lorsque vous devrez créer un objet symétrique (visage par exemple ), c'est Mirror. Il permet de modéliser seulement une moitié, l'aute partie symétrique est réalisée automatiquement.
 
Dès le départ prenez garde à placer le centre de votre modèle en Object Mode à l'origine ( x=0, y=0, z=0 ) sinon lorsque vous exportez votre modèle, vous aurez des problèmes lors de la copie dans NifSkope. Pour le faire, placez le curseur sur l'origine (vérifiez dans les trois vues), sélectionnez votre objet puis faites Object/Transform/Center Cursor
 
Evitez d'appliquer des transformations (rotation/échelle) à un objet, si vous le faites pensez à les appliquer ensuite : Object/Clear Apply/Apply Scale/Rotation to ObData

Si vous ne le faites pas vous aurez peut-être des messages d'erreurs lors de l'exportation ou alors vous aurez des problèmes dans NifSkope.

Travaillez toujours en Edit Mode por éviter ces problèmes.
 
Prenez garde au nombre de polygones, si vous appliquer des modificateurs de lissage, on peut très vite se retrouver avec des dizaines de miliers de polygones. J'ai fait un modèle qui se compose de 20 000 polygones sans problème. Sur un PC moderne ça passe, mais si on a énormément de personnages avec de nombreux polygones visibles en même temps, là ça risque de créer des ralentissements.
Pensez à éliminer les polygones invisibles. Si vous créez un habillage ou une armure par dessus un corps, ne laissez pas le corps entier dessous, pensez à éliminer tout ce qui est caché.
 
Les modèles de Fallout 3 se composent d'un corps, d'une tête et de deux mains. Lorsque vous créez un corps, il faudra garantir le fait que le cou et les mains seront ajustés au corps une fois dans le jeu. C'est là que le modèle d'origine importé sert à vérifier que les poignets et la découpe du cou sont exactement placés.
 
 
 
Placement des textures et mappage UV:
 

Le placement d'une texture pour un modèle destiné à Fallout 3 n'est pas compliqué, mais c'est une procédure assez longue qu'il faut bien paramètrer pour que ça marche correctement.

 
Je vais décomposer toute la marche à suivre en images.
 
La première chose à faire c'est d'ajouter un material :
material
En Object Mode on va dans le mode Editing puis on va ajouter un matériel en cliquant sur New.
On passe dans le mode Shading pour voir les détails de ce matériel.
matériel
On va afficher ce matériel sur un plan puisqu'on va y appliquer uune texture.
Tout à droite on a la liste des futures textures qu'on pourra appliquer à notre matériel.
 
On passe maintenant dans le mode Texture Buttons:
 
Texture
 
On va ajouter deux textures, la texture proprement dite et sa normal map qui servira dans le jeu à ajouter du relief et à contrôler sa reflectivité.
On clique sur Add New pour ajouter une texture de type Image.
 
Ajout de texture
On clique ensuite sur Load pour aller chercher l'image dans le dossier texture du jeu. Attention n'utilisez pas des textures qui ne se trouvent pas dans le dossier Data / Textures de Fallout 3, sinon par la suite vous devrez corriger la source dans NifSkope. Préparez donc vos textures avant de les utiliser et mettez les dans le dossier définitif destiné à votre modèle en respectant la structure et la nomenclature utilisée par les fichier du jeu originel.
Voilà, notre texture est chargée dans Blender, il faudra encore la configurer ensuite, mais on va d'abord charger la texture de normal map.
On clique sur la deuxième barre de la liste pour que la normal map puisse se charger dans cet emplacement.
 
Voilà nous avons nos deux textures qu'il faut encore configurer pour qu'elles s'affichent correctement et utilisent la bonne méthode de mappage de texture.
On retourne dans le mode Material Buttons
 
On ouvre l'onglet Map Input pour choisir le type de coordonnées de texture, on va utiliser le mappage UV. Dans l'onglet Map To on va choisir le mode d'affichage de la texture dans le matériel, on utilise le mode Color pour la texture de base.
On va faire la même chose pour la texture de normal map correspondante.
Dans l'onglet Map Input c'est à nouveau le mode UV, mais dans l'onglet Map To on va choisir le mode Nor pour que cette texture soit utilisée comme une normal map dans le matériel.
 
Au sujet de ces normal maps, il faut préciser que pour Fallout 3, elles contiennent deux informations. Ces normal maps sont au format DDS 5 qui contient une couche alpha. Les trois couches RGB contiennent les informations de normal map, mais la couche alpha contient l'information de spécularité. C'est à dire que celà affecte la réflectivité du matériel appliqué au modèle. Si la couche alpha est totalement blanche, la réflectivité sera complète et on aura une texture brillante comme un sou neuf. Si elle est noire la texture sera mat. On peut faire varier cette brillance en éclaircissant ou en assombrissant cette couche alpha. On peut bien sûr créer des zones différenciées pour que certains endroits soient brillants et d'autres non.
 
Le mappage UV :
 
Maintenant que ces textures sont chargées, on va pouvoir les appliquer sur le modèle. On va utiliser un mappage UV, c'est à dire une projection de la texture sur le modèle. Il y a plusieurs possibilités pour faire ce mappage, on peut simplement projeter la texture sur l'objet en choisissant une direction à partir de la vue 3D.
On peut aussi enrouler ou envelopper l'objet avec la texture. Pour le faire on va dérouler l'objet pour le mettre à plat en le découpant en divers endroits.
Plus le modèle est complexe plus ce sera difficile de découper l'objet de la bonne manière pour éviter d'importantes déformations.
 
Pour un exemple simple comme ci-dessus, on va utiliser une projection latérale simple.
On passe en Edit Mode, on sélectionne tous les polygones du modèle dans la vue latérale et on va dans le menu Mesh/ UV unwrap puis on choisi Project From View. Si on choisi le version (Bounds) la projection va se maximiser pour couvrir toute la texture.
De cette façon toutes les faces du modèle seront projetées sur la texture, sur les côtés la texture sera plus étirée que sur le centre, mais on pourra corriger ce défaut dans la fenêtre
On va ensuite ajuster la projection dans l'éditeur de projection :
On voit que la projection ne suit pas l'image, il va falloir ajuster celle ci pour qu'elle suive au mieux les contours de l'image.
 
Après avoir déplacé les sommets on obtient un résultat satisfaisant, mais dans cet exemple, la semelle n'est pas projetée correctement car en vue latérale la projection des faces de la semelle est écrasée. On va alors changer de vue et sélectionner les face de la semelle uniquement et refaire une projection comme avant pour obtenir un découpage utilisable.
 
Après ajustage de la projection sur la texture on a une projection en UV map tout à fait correcte. On peut encore affiner le dos et le cou du pied de la chaussure qui sont un peu trop étirés en projection latérale, mais attention si on fait une projection partielle, la liaison sera délicate à réaliser pour éviter un saut de texture.
 
 
Dans l'exemple ci-dessus on a un modèle composé de nombreux polygones, ce qui rend le mappage UV plus difficile à réaliser, par contre la semelle contient peu de polygone ce qui rend l'ajustage plus facile.
Une astuce intéressante, c'est de faire un objet composé de peu de polygones, d'appliquer le mappage UV pendant que c'est facile et rapide à faire, puis d'affiner le modèle après.
 
Blender permet de garder le mappage si on continue à éditer le modèle. Il faut simplement utiliser des transformations en Edit Mode et ne pas ajouter des polygones, on peut utiliser l'extrusion, le lissage qui conservent le mappage UV. Si on ajoute des polygones, il faudra ensuite leur appliquer un mappage UV et les mettre en place sur la texture.
 
 
Liaison au squelette :
 
L'étape suivante dans le modelage va consister à lier le modèle au squelette ( rigging )
 
Ca signifie que chaque sommet du modèle devra être relié à un ou plusieurs os du squelette pour que la peau ( skin ) suive les mouvements du squelette qui sera animé.
 
C'est une opération longue et délicate à réaliser car il faut que les déformations soient naturelles et bien ajustées sinon lors de l'animation le modèle sera déformé de façon étrange.
 
Il n'y a pas de formule magique pour lier les sommets au squelette. On va commencer par appliquer un modificateur Armature Parent Deform.
 
Pour ce faire on sélectionne le modèle en Object Mode , puis on fait SHIFT-clic droit sur le squelette pour les sélectionner les deux. Ensuite on fait CTRL-P pour rendre le squelette parent du modèle. Une boite de dialogue apparait et on choisit l'option Use Armature, puis Name Groups dans la suivante
 
Si on a choisi l'option Name Groups, il faudra attribuer les sommets aux os du squelette manuellement, puis affiner le résultat avec le Mode Weight Paint.
 
Il y a deux autres méthodes, celle par Bone Heat qui signifie chaleur des os et qui revient à ce que les sommets soient liés aux os en fonction de la distance. Le résultat est rarement parfait car ça marche si on a un modèle très filiforme.
La troisième méthode c'est en fonction des enveloppes générées par les os. Les sommets à l'intérieur des enveloppes sont attribués à l'os correspondant. Ca serait une bonne méthode (semblable à celle de Character Studio de 3DSMax) mais la manière de générer les enveloppes fait que c'est peu précis.
 
On va devoir de toute façon utiliser le Mode Weight Paint pour corriger et ajuster les poids des os pour les sommets.
 
Lorsqu'on a créé les Name groups on va se retrouver avec une nouvelle série de boutons :
On passe en Edit Mode et dans Link and Material on va trouver une section appelée Vertex Group.
 
Il y a plusieurs boutons dans cette section, New permet de créer un nouveau groupe, normalement on ne l'utilise pas dans notre cas. Delete permet de supprimer un groupe, on ne l'utilise pas non plus sauf si on veut supprimer tous les groupes de sommets dans le cas ou ce serait nécessaire d'effacer toute liaison au squelette.
 
Assign permet d'attribuer les sommets sélectionnés à l'os sélectionné juste au dessus. Le poids de cet os peut être défini par Weight, la valeur va de 0 à 1.
Le poids défini la force de liaison entre le sommet et l'os du squelette. Un sommet peut être lié à plusieurs os afin de permettre des mouvements plus souples.
Remove enlève simplement les sommets sélectionnés de l'os sélectionné.
Select permet de voir quels sont les sommets qui sont liés à l'os sélectionné, attention les poids peuvent varier, le sommet sera affiché même si l'effet de l'os est presque nul.
Deselect annule la sélection des sommets en cours.
 
Dans la barre de règlage nommée Weight juste au dessus des boutons, on va ajuster le poid de l'os sélectionné à attribuer aux sommets sélectionnés.
 
Juste au-dessus il y a la liste déroulante de sélection des os du squelette:
 
Cette liste contient tous les os du squelette de type Bipede correspondant au squelette qu'on a importé dans Blender.
En plus des os du squelette on va remarquer deux autres os qui sont Weapon et Camera3rd. Ce sont le point d'ancrage pour l'arme pour Weapon et le point d'ancrage pour la caméra en vue à la troisième personne.
Normalement on ne va pas utiliser ces os pour la liaison squelette modèle, ce sont simplement des points de référence.
Il y a également un groupe distinct ( encadré en rouge) qui ne correspond pas à des os proprement dit, mais à des zones du modèle. Ce sont les zones définies pour le démembrement du modèle.
En effet le démembrement fait appel à un squelette parallèle fictif composé de 9 éléments qui seront reliés à des zones du modèle.
On pourra alors découper le modèle en 9 parties distinctes qui doivent correspondre avec le placement des fermetures de démembrement MeatCapLimbs et MeatCapBody.
Bien sur dans ce cas il n'y a pas plusieurs os reliés au même sommet.
 
Le gros travail va être de finaliser la liaison modèle squelette avec Weight Paint, c'est un outil facile à comprendre, on paint simplement un poid sur le modèle. Mais sa mise en oeuvre est assez délicate, il faut prendre garde à ne pas déraper et à peindre à côté sinon on va se retrouver très vite avec un modèle catastrophique!
En plus c'est assez difficile de créer des dégradés lisses et d'éviter des déformations irrégulières. Il faudra tout au long du travail faire bouger le squelette pour voir le résultat et corriger en conséquence.
 
UIl y a une astuce pour pouvoir bouger les os tout en utilisant Weight Paint.
On procède ainsi :
On se met en Object Mode et on sélectionne le squelette, puis on passe en Pose Mode, on sélectionne un os du squelette puis dans les boutons en bas on va mettre les boutons Edit Buttons et dans la section Armature on va activer X-Ray pour que les os restent visible à travers le modèle.
 
Ensuite on sélectionne le modèle avec le bouton droit de la souris puis on passe immédiatement en mode Weight Paint.
 
De cette façon on pourra peindre avec le bouton gauche de la souris et sélectionner les os du squelette avec le bouton droit de la souris. On pourra faire pivoter les os pour apprécier les déformations du modèle et ajuster celles-ci.
 
 
Comme ce travail de liaison est long et fastidieux, ce serait très pénible de devoir le refaire pour chaque nouveau modèle, il y a une fonction dans Blender qui va nous sauver la vie, c'est le script Bone Weight Copy.
 
Il permet de se servir d'un modèle bien lié au squelette comme référence pour relier un modèle similaire au squelette.
Il faut simplement que le nouveau modèle ne comporte pas de Vertex Group, si c'est le cas il faut tous les supprimer avec le bouton Delete.
Ensuite on sélectionne les deux modèles et on lance le scripts : Object/ Scripts/ Bone Weight Copy , on va choisir la valeur 3 pour la qualité de l'interpolation.
 
 
Le script va alors appliquer les poids des sommets d'un modèle aux sommets de l'autre en fonction de la distance en interpolant pour un résultat le plus correct possible.
Bien sur plus les modèles seront ressemblants, meilleur sera le résultat.
Cette manière de faire est surtout très utile pour faire en sorte qu'une pièce de vêtement que vous venez de réaliser suive le modèle sur lequel elle sera mise au plus près. Sans cet outil ce serait extrêmement difficile de faire en sorte que le vêtement suive le modèle sans causer des interpénétrations désagréables lors des animations.
 
Il existe même un outil au format nif qu'on peut importer et qui va servir à appliquer une liaison correcte au modèle si vous n'avez pas de modèle correctement lié. Cet outil a été créé pour les modèles d'Oblivion qui sont semblables à ceux de Fallout 3. C'est Growlfs qui a réalisé ces outils qu'on peut trouver sur le site Nexus dédié à "The Elder Scrolls" http://www.tesnexus.com/downloads/file.php?id=18249